#ifndef SIMPLEPARAMETER_H_
#define SIMPLEPARAMETER_H_

#include <string>
#include <list>
#include "WorkUnitData.h"

namespace ComputingObjects
{

template <class T> class SimpleParameter : public ComputingObjects::WorkUnitData
{
public:
	SimpleParameter() {};
	SimpleParameter(const T& param);
	SimpleParameter(const SimpleParameter<T>& src)
		: myParam(src.myParam)
		{}
	virtual ~SimpleParameter()
	{
	
	};
	T& getParam()
	{
		return myParam;
	}
	void setParam(T& param)
	{
		myParam = param;
	}
protected:
	T myParam;
};

typedef SimpleParameter<int> IntParam;
typedef SimpleParameter<unsigned int> UintParam;
typedef SimpleParameter<std::string> StringParam;

}

#endif /*SIMPLEPARAMETER_H_*/
